package TGA.DB2.Entity;
import static javax.persistence.GenerationType.SEQUENCE;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;

import org.hibernate.annotations.ForeignKey;

@Entity
@Table(uniqueConstraints = @UniqueConstraint(name = "uk_Departamento", columnNames = {"codigoDepartamento", "loja_IDLoja"}))
public class Departamento {

	@Id
	@GeneratedValue(strategy = SEQUENCE, generator = "seq_departamento")
	@SequenceGenerator(name="seq_departamento", sequenceName="seq_departamento")
	private Long IDDepartamento;
	
	@Column(nullable=false)
	private int codigoDepartamento;

	@Column(nullable=false)
	private String nome;
	
	/*******************
	 * Relacionamentos *
	 *******************/
	
	@ManyToOne(optional=false)
	@ForeignKey(name="FK_Departamento_Loja")
	private Loja loja;

	/*******************
	 *     Metodos     *
	 *******************/
	
	
	
	public int getCodigoDepartamento() {
		return codigoDepartamento;
	}

	public Departamento(){}
	public Departamento(int codigoDepartamento, String nome, Loja loja) {
		super();
		this.codigoDepartamento = codigoDepartamento;
		this.nome = nome;
		this.loja = loja;
	}

	public void setCodigoDepartamento(int codigoDepartamento) {
		this.codigoDepartamento = codigoDepartamento;
	}

	public Loja getLoja() {
		return loja;
	}

	public void setLoja(Loja loja) {
		this.loja = loja;
	}


}